//
// Copyright (c) 2024 BPer
//
#ifndef SRC_BPERRTP_BPERRTCPCOMMON_H_
#define SRC_BPERRTP_BPERRTCPCOMMON_H_

#include <bperrtp/BPerRtcp.h>
#include <bperrtp/BPerRtpConstant.h>
#include <bperutil/buffer/BPerBuffer.h>

#if BPer_OS_WIN
#include <winsock2.h>
#include <ws2tcpip.h>
#else
#include <arpa/inet.h>
#endif

#ifdef __cplusplus
extern "C"{
#endif

void bPer_create_rtcpCommon(BPerRtcpCommon* comm);
void bPer_destroy_rtcpCommon(BPerRtcpCommon* comm);
int32_t bPer_decode_rtcpCommon(BPerRtcpCommon* comm,BPerBuffer *buffer);
int32_t bPer_encode_rtcpCommon(BPerRtcpCommon* comm,BPerBuffer *buffer);
uint64_t bPer_get_rtcpCommon_nb_bytes(BPerRtcpCommon* comm);
int32_t bPer_decode_header_rtcpCommon(BPerRtcpCommon* comm,BPerBuffer *buffer);
int32_t bPer_encode_header_rtcpCommon(BPerRtcpCommon* comm,BPerBuffer *buffer);
int32_t bPer_encode_header_rtcpHeader(BPerRtcpHeader* header,uint32_t ssrc,BPerBuffer *buffer);
#ifdef __cplusplus
}
#endif
#endif /* SRC_BPERRTP_BPERRTCPCOMMON_H_ */
